package com.you.weixinpay.result;

import lombok.Getter;

@Getter
public enum ResultCodeEnum {
    SUCCESS(200, "操作成功"),
    ERROR(400, "操作失败"),
    DIVIDE_BY_ZERO(400, "除数不能为零"),


    //继续二次链式数据调用【暂时无用】
    NOTICE_TYPE_ERROR_TWO(201, "该公告类型下存在公告，无法直接删除"),

    //验证码相关错误
    CAPTCHA_ERROR(400, "验证码错误"),
    CAPTCHA_EXPIRE(400, "验证码已过期"),

    // token相关错误
    TOKEN_EXPIRED(401, "token 已失效,请重新登录"),
    TOKEN_MISSING(401, "请先登录再操作"),
    TOKEN_ERROR( 401, "token 错误"),


    TOKEN_AUTHENTICATION_FAILED(403, "无权限访问"),


    //登录相关错误
    USER_NOT_EXIST(400, "用户不存在"),
    ADMIN_NOT_EXIST(400, "管理员不存在"),
    PASSWORD_ERROR(400, "密码错误"),
    USER_LOCKED(400, "用户已被锁定"),
    USER_LOCKED_TEMPORARILY(400, "密码错误次数过多，账号已锁定30分钟"),
    LOGIN_FAILED(400, "登录失败"),
    WX_LOGIN_ERROR(400, "微信登录失败"),
    USER_TYPE_NOT_SUPPORT(400, "不支持的用户类型"),


    //通用错误
    ADD_FAILED(400, "新增失败"),
    UPDATE_FAILED(400, "修改失败"),
    DELETE_FAILED(400, "删除失败"),
    DATA_ERROR(400, "缺少必要参数"),
    EXPORT_FAILED(400, "导出失败"),
    IMPORT_FAILED(400, "导入失败"),
    DOWNLOAD_EXPORT_FAILED(400, "下载模板失败"),


    //用户相关
    USER_EXIST(400, "用户名已存在"),
    USER_NICKNAME_EXIST(400, "昵称已存在"),
    USER_PHONE_EXIST(400, "手机号已存在"),
    USER_EMAIL_EXIST( 400, "邮箱已存在"),
    PARAM_ERROR( 400, "参数错误"),



    //文件上传相关错误
    FILE_UPLOAD_FAILED(400, "文件上传失败"),
    VIDEO_UPLOAD_FAILED(400, "视频上传失败"),
    FILE_TYPE_NOT_SUPPORTED( 400, "文件类型不支持"),
    FILE_DELETE_FAILED(400, "文件删除失败"),
    FILE_NOT_EXIST( 400, "文件不存在"),
    FILE_EMPTY(400, "文件不能为空"),

    //修改密码相关错误
    OLD_PASSWORD_ERROR(400, "原密码错误"),
    PASSWORD_NOT_MATCH(400, "两次密码不一致"),
    NEW_PASSWORD_SAME_AS_OLD(400, "新密码不能与原密码相同"),
    PASSWORD_COMPLEXITY_ERROR(400, "新密码至少6位，且包含字母和数字"),

    //导出相关错误，导出数据不能为空
    EXPORT_DATA_EMPTY(400, "导出数据为空"),
    NO_VALID_DATA_FOUND(400, "未找到有效数据"),
    // 性别相关错误
    INVALID_SEX(400, "性别必须为男、女或保密"),
    // 手机号相关错误
    INVALID_PHONE_FORMAT(400, "手机号格式不正确"),
    DUPLICATE_PHONE(400, "表格手机号数据重复"),
    // 邮箱相关错误
    INVALID_EMAIL_FORMAT(400, "邮箱格式不正确"),
    DUPLICATE_EMAIL(400, "表格邮箱重复"),
    // 昵称相关错误
    DUPLICATE_NICKNAME(400, "表格昵称重复"),
    INVALID_NICKNAME_FORMAT(400, "昵称格式不正确(1-16位，不能是纯数字，支持中文、字母、下划线、减号)"),
    // 用户名相关错误
    INVALID_USERNAME_FORMAT(400, "用户名格式不正确(4-16位字母、数字、下划线或连字符)"),
    DUPLICATE_USERNAME(400, "表格用户名重复")


    ;


    private final Integer code;

    private final String message;

    ResultCodeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
